PT. Samba Lababan memproduksi ban motor dan ban sepeda. Proses pembuatan ban motor melalui tiga mesin, yaitu 2 menit mesin 1, 8 menit pada mesin 2 dan 10 menit pada mesin 3. Adapun ban sepeda diprosesnya melalui dua mesin, yaitu 5 menit pada mesin 1 dan 4 menit pada mesin2. Tiap mesin ini dapat dioperasikan 800 menit perhari. Untuk memperoleh keuntungan maksimum, rencananya perusahaan ini akan mengambil keuntungan Rp40.000,00 dari setiap penjualan ban motor dan Rp30.000,00 dari setiap penjualan ban sepeda. Bagaimana pihak perusahaan merencanakan banyak ban motor dan banyak ban sepeda yang akan diproduksinya sehingga keuntungannya maksimum.
Petakan kasus dalam bentuk tabel untuk mempermudah pemodelan matematika:
Produk | Mesin 1 | Mesin 2 | Mesin 3 | Laba |
---|---|---|---|---|
Ban Motor | 2 menit | 8 menit | 10 menit | 40000 |
Ban Sepeda | 5 menit | 4 menit | 0 menit | 30000 |
Tersedia | 800 menit | 800 menit | 800 menit | ? |
Setiap masalah pemrograman linear harus mempunyai constraints/kendala, decision variabel/variabel keputusan dan objective/tujuan.
Dengan pulp kita bisa menyelesaikan masalah diatas dengan mudah. Lihat dibawah
In [10]:
import pulp
import solver
ban_sepeda = 'ban sepeda'
ban_motor = 'ban motor'
problem_name = 'Optimasi Laba Penjualan Ban'
# decision variables (variabel keputusan)
x = pulp.LpVariable(ban_motor, lowBound=0, cat='Integer')
y = pulp.LpVariable(ban_sepeda, lowBound=0, cat='Integer')
# objective / fungsi tujuan
maximize = 40000 * x + 20000 * y
# constraints / fungsi kendala
mesin1 = 2 * x + 5 * y <= 800
mesin2 = 8 * x + 4 * y <= 800
mesin3 = 10 * x + 0 * y <= 800
# magics
solver = solver.Solver(problem_name, pulp.LpMaximize) # init the solver
solver.tujuan(maximize) # tentukan tujuan yang kita inginkan
solver.kendala(mesin1, mesin2, mesin3) # tambahkan kendala yang kita buat
solver.hasil(x, y) # print hasil dari kedua variabel jika kasus diselesaikan
Bisa dilihat nilai optimalnya adalah (25, 150) untuk (x,y)
class solver bisa anda lihat di repository
Anda bisa menggunakan pulp bukan hanya untuk menyelesaikan kendala dengan 2 variabel. Pulp mengimplementasi algoritma simplex (revised simplex), contoh diatas adalah contoh kasus sederhana yang hanya melibatkan 2 variabel. Contoh implementasi lebih dari 2 variabel bisa dilihat di repository Mba' (sok kenal) Anna Nocanorova
In [ ]: